import sdk from 'sdk'
import ajax from '@/api'
import storage from 'utils/helper/storage'
import { isObject, isNumber, isString } from 'utils/helper/validator'

export default {
  state: {
    hasLogin: false,
    userInfo: {}
  },
  mutations: {
    SAVE_TOKEN(state, data) {
      state.hasLogin = true

      if (data && isObject(data)) { // 刚登录完
        // 设置header
        ajax.setConfig({
          header: {
            Authorization: data.accessToken || data.token
          }
        })

        // 缓存token
        if (Number(data.expiresIn)) {
        //暂时为了兼容ubd交接过来的h5，他们不知道到底用的是AUTHORIZATION还是token，反正都有用到
          storage.set('AUTHORIZATION', data.accessToken || data.token, Number(data.expiresIn))
        } else {
          storage.set('AUTHORIZATION', data.accessToken || data.token)
        }
      } else if (data && (isString(data) || isNumber(data))) { // 此前已登录，本地存有token
        // 设置header
				ajax.setConfig({
          header: {
            Authorization: data
          }
        })
        //暂时为了兼容ubd交接过来的h5，他们不知道到底用的是AUTHORIZATION还是token，反正都有用到
        storage.set('AUTHORIZATION', data)
      }
    },
    REMOVE_TOKEN(state) {
      state.hasLogin = false
      // 设置header
      ajax.setConfig({
        header: {
          Authorization: null
        }
      })
      // 删除token
      storage.remove('AUTHORIZATION')
    },
    SET_USER_INFO(state, data){
			state.userInfo = data
		},
  },
  actions: {
    LOGIN(context, params = {}) {
      sdk.login(params)
      // .then(data => {
      //   context.dispatch('GET_USER_INFO', null, { root: true })
      // })
      .catch(err => {
        console.warn('[store::actions:LOGIN] error', err)
      })
    },
    SET_USER_INFO({commit},params){
			commit('SET_USER_INFO', params)
		}
  },
  getters: {}
}